package paquete;

import java.io.File;
import java.io.IOException;
import java.util.List;
import org.jdom2.Document;         // |
import org.jdom2.Element;          // |\ Librerías
import org.jdom2.JDOMException;    // |/ JDOM
import org.jdom2.input.SAXBuilder; // |
import paquete.Agenda;

public class UsarXml {

	// crear lector de xml
	public static void leer(String xml, Agenda agenda) {
		Contacto persona= new Contacto();
		// Se crea un SAXBuilder para poder parsear el archivo
		SAXBuilder builder = new SAXBuilder();
		File xmlFile = new File(xml);
		try {
			// Se crea el documento a traves del archivo
			Document document = (Document) builder.build(xmlFile);

			// Se obtiene la raiz 'tables'
			Element rootNode = document.getRootElement();

			// Se obtiene la lista de hijos de la raiz 'tables'
			List list = rootNode.getChildren("entrada");

			// Se recorre la lista de hijos de 'tables'
			for (int i = 0; i < list.size(); i++) {
				// Se obtiene el elemento 'tabla'
				Element tabla = (Element) list.get(i);

				// Se obtiene el atributo 'nombre' que esta en el tag 'tabla'
				//String nombreTabla = tabla.getAttributeValue("nombre");

				// Se obtiene la lista de hijos del tag 'tabla'
				List lista_campos = tabla.getChildren();


				// Se recorre la lista de campos
				for (int j = 0; j < lista_campos.size(); j++) {
					// Se obtiene el elemento 'campo'
					Element campo = (Element) lista_campos.get(j);

					// Se obtienen los valores que estan entre los tags
					// '<campo></campo>'
					// Se obtiene el valor que esta entre los tags
					// '<nombre></nombre>'
					String nombre = campo.getChildTextTrim("nombre");
					persona.setNombre(nombre);
					// Se obtiene el valor que esta entre los tags
					// '<tipo></tipo>'
					String apellido = campo.getChildTextTrim("apellidos");
					persona.setApellido1(apellido);
					// Se obtiene el valor que esta entre los tags
					// '<valor></valor>'
					String telefono = campo.getChildTextTrim("telefono");
					persona.setFijo(telefono);
					
					if(agenda.Lenght()<128)
					{
						agenda.AddContact(persona);				
					}
					
					else
					{
						System.out.println("Agenda llena");
						break;
					}
				}
			}
		} catch (IOException io) {
			System.out.println(io.getMessage());
		} catch (JDOMException jdomex) {
			System.out.println(jdomex.getMessage());
		}
	}

	// crear escritor de xml
	public static void escribir(String xml, Agenda agenda) {

	}

}
